// // 用户登录验证（封装）
// // 数据库的用户名密码
// let username = "admin";
// let password = "123456";
// // 封装好的function
// function Login(inputUsername, inputPassword) {
//     if (!(inputUsername === username && inputPassword === password)) {
//         return false
//     }
//     return true
// }
// // 用户输入用户名密码
// let inputUsername = "admin";
// let inputPassword = "123456";
// // 调用function，接收返回值
// let Loginnumber = Login(inputUsername, inputPassword)
// // 返回值判断登录结果
// if (Loginnumber) {
//     console.log("Login successful!");
// } else {
//     console.log("Invalid username or password.");
// }

// // 购物车折扣计算（封装）
// // 数据库商品参数
// let totalAmount = 120;
// let isMember = true;
// // 封装function
// function gwc(totalAmount, isMember) {
//     if (totalAmount > 100 && isMember) {
//         totalAmount *= 0.9;
//         return "Discount applied. Total amount is: $" + totalAmount
//     } else {
//         return "No discount. Total amount is: $" + totalAmount
//     }
// }
// //调用
// let str = gwc(totalAmount, isMember)
// // 打印
// console.log(str)

// // 猜数字游戏（封装）
// // 生成1到100之间的随机数
// let targetNumber = Math.floor(Math.random() * 100) + 1
// //封装function
// function game(targetNumber) {
//     let guess = null
//     let attempts = 0
//     while (guess != targetNumber) {
//         guess = parseInt(prompt("Guess the number (between 1 and 100):"), 10);
//         attempts++

//         if (guess < targetNumber) {
//             return "Too low! Try again."
//         } else if (guess > targetNumber) {
//             return "Too high! Try again."
//         } else if (guess === targetNumber) {
//             return `Congratulations! You guessed the number in ${attempts} attempts.`
//         }
//     }
// }
// // 调用
// let str = game(targetNumber)


// // 遍历数组并计算总和和平均值（封装）
// // 初始化数组
// let numbers = [10, 20, 30, 40, 50];
// // 箭头函数封装
// let sum_average = numbers => {
//     let sum_average = []
//     let sum = 0
//     for (let i = 0; i < numbers.length; i++) {
//         sum += numbers[i]
//     }
//     // 求average
//     let average = sum / numbers.length;
//     sum_average.push(sum, average)
//     return sum_average
// }
// // 调用
// let si = sum_average(numbers)
// //调用
// console.log(`Sum: ${si[0]}` + ' ' + `Average: ${si[1]}`)

// // 打印乘法表（封装）
// 封装函数
// cfb = () => {
//     for (let i = 1; i <= 9; i++) {
//         let row = '';
//         for (let j = 1; j <= i; j++) {
//             row += `${j} * ${i} = ${i * j}\t`;
//         }
//         console.log(row);
//     }
// }
// // 调用
// cfb()


// // 过滤数组中的奇数并输出（封装）
// // 初始化数据
// const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// // 封装函数
// jishu = numbers => {
//     let newarr = []
//     for (const num of numbers) {
//         if (num % 2 !== 0) {
//             newarr.push(num)
//         }
//     }
//     return newarr
// }
// // 调用
// console.log(jishu(numbers))

// // 查找并输出字符串数组中包含特定子字符串的元素（封装）
// // 初始化数据
// const phrases = ['hello world', 'javascript is fun', 'openai gpt', 'coding is great'];
// // 封装函数
// zfc = phrases => {
//     let newarr = []
//     for (const phrase of phrases) {
//         if (phrase.includes('is')) {
//             newarr.push(phrase)
//         }
//     }
//     return newarr
// }
// // 调用
// console.log(zfc(phrases))

// // 计算并输出包含负数的数组的正数总和（封装）
// const mixedNumbers = [-3, 5, -1, 8, -2, 7];
// sss = mixedNumbers => {
//     let sum = 0;
//     for (const num of mixedNumbers) {
//         if (num > 0) {
//             sum += num;
//         }
//     }
//     return sum
// }
// console.log(`Total sum of positive numbers: ${sss(mixedNumbers)}`)

// // 计算对象中数值属性的总和（封装）
// const data = {
//     a: 10,
//     b: 20,
//     c: 'thirty',
//     d: 40,
//     e: 'fifty'
// };
// www = data => {
//     let sum = 0
//     for (const key in data) {
//         if (typeof data[key] === 'number') {
//             sum += data[key]
//         }
//     }
//     return sum
// }
// console.log(www(data));

// // 查找并输出数组中的正数并计算它们的平均值（封装）
// const numbers = [-3, 5, -1, 8, -2, 7];
// avg = numbers => {
//     let avg = []
//     let sum = 0;
//     let count = 0;
//     numbers.forEach(num => {
//         if (num > 0) {
//             sum += num;
//             count++;
//         }
//     });
//     const average = sum / count;
//     avg.push(sum, average)
//     return avg
// }
// console.log(`Average of positive numbers: ${avg(numbers)}`);

// 将对象数组中的特定属性值大写化（封装）
// const people = [
//     { name: 'Alice', age: 25 },
//     { name: 'Bob', age: 30 },
//     { name: 'Charlie', age: 35 }
// ];
// uppercasedNames = people => {
//     const uppercasedNames = people.map(person => { return person.name.length > 3 ? { ...person, name: person.name.toUpperCase() } : person; });
//     return uppercasedNames
// }
// console.log(uppercasedNames(people));

// // 将字符串数组中的特定子字符串替换为另一字符串（封装）
// const phrases = ['hello world', 'javascript is fun', 'hello openai', 'coding is great'];
// function updatedPhrases(phrases) {
//     const updatedPhrases = phrases.map(phrase => {
//         return phrase.includes('hello') ? phrase.replace('hello', 'hi') : phrase;
//     })
//     return updatedPhrases
// }
// console.log(updatedPhrases(phrases))

// 计算并输出长度大于 5 的字符串的总长度（封装）
// const phrases = ['hello world', 'javascript', 'openai', 'coding is fun'];
// totalLength = phrases => {
//     const totalLength = phrases
//         .filter(phrase => phrase.length > 5) // 过滤长度大于5的字符串
//         .map(phrase => phrase.length) // 将每个字符串转换为其长度
//         .reduce((sum, length) => sum + length, 0); // 计算总长度
//     return totalLength
// }
// console.log(`Total length of strings longer than 5 characters: ${totalLength(phrases)}`);

// // 计算正数数组的平方和，并排除负数（封装）
// const numbers = [-5, 3, -2, 4, 6, -1];
// squareSum = numbers => {
//     const squareSum = numbers
//         .filter(num => num > 0)        // 过滤正数
//         .map(num => num * num)         // 将每个正数平方
//         .reduce((sum, squared) => sum + squared, 0); // 计算平方和
//     return squareSum
// }
// console.log(`Sum of squares of positive numbers: ${squareSum(numbers)}`);

// // 处理用户数据，提取年龄大于 18 的用户，并计算他们的平均年龄（封装）
// const users = [
//     { name: 'Alice', age: 22 },
//     { name: 'Bob', age: 17 },
//     { name: 'Charlie', age: 30 },
//     { name: 'David', age: 15 }
// ];
// averageAge = users => {
//     const averageAge = users
//         .filter(user => user.age > 18) // 过滤年龄大于18的用户
//         .map(user => user.age) // 提取用户年龄
//         .reduce((sum, age, _, array) => sum + age / array.length, 0); // 计算平均年龄
//     return averageAge
// }
// console.log(`Average age of users older than 18: ${averageAge(users)}`);

// // 在购物车中移除指定商品（封装）
// const cart = [
//     { id: 1, name: 'Laptop', quantity: 1 },
//     { id: 2, name: 'Mouse', quantity: 2 },
//     { id: 3, name: 'Keyboard', quantity: 1 }
// ];
// const itemIdToRemove = 2;
// removecar = (itemIdToRemove) => {
//     const indexToRemove = cart.findIndex(item => item.id === itemIdToRemove);
//     if (indexToRemove !== -1) {
//         cart.splice(indexToRemove, 1);
//     }
// }
// removecar(2)
// console.log(cart);

// // 将数组中的第一个负数替换为零（封装）
// const employees = [
//     { id: 1, name: 'John', role: 'Developer' },
//     { id: 2, name: 'Jane', role: 'Designer' },
//     { id: 3, name: 'Tom', role: 'Manager' }
// ];
// const employeeIdToUpdate = 3;
// const newRole = 'Senior Manager';
// update = (employees, employeeIdToUpdate, newRole) => {
//     const indexToUpdate = employees.findIndex(
//         employee => employee.id === employeeIdToUpdate
//     )
//     if (indexToUpdate !== -1) {
//         employees[indexToUpdate].role = newRole;
//     }
// }
// update(employees, employeeIdToUpdate, newRole)
// console.log(employees);

// // 将数组中的第一个负数替换为零（封装）
// const numbers = [4, -1, 6, -2, 7];

// tihuan = numbers => {
//     const indexToReplace = numbers.findIndex(num => num < 0);
//     if (indexToReplace !== -1) {
//         numbers.splice(indexToReplace, 1, 0);
//     }
// }
// tihuan(numbers)
// console.log(numbers);